/**
 * Clase que representa la estructura de la tabla en un objeto Java. Cada
 * atributo de la tabla es creado como variables y su formato como anotaciones
 *
 * @version 1.0, 02/28/2013
 * @author avbravo mod:Katherine Moreno
 */
package gps.general;

import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import system.general.Columna;

@ManagedBean(name = "gps_generalBeans")
@RequestScoped
public class Beans {

    @Columna(nombre = "id", tipo = "Integer")
    private Integer id = 0;
    @Columna(nombre = "imei", tipo = "String")
    private String imei = "";
    @Columna(nombre = "numero_serie", tipo = "String")
    private String numero_serie = "";
    @Columna(nombre = "marca", tipo = "String ")
    private String marca = "";
    @Columna(nombre = "modelo", tipo = "String")
    private String modelo = "";
    @Columna(nombre = "nombre", tipo = "String")
    private String nombre = "";
    @Columna(nombre = "tipo", tipo = "Integer")
    private Integer tipo = 0;
    @Columna(nombre = "detalle", tipo = "String")
    private String detalle = "";
    @Columna(nombre = "caducidad", tipo = "Date")
    private Date caducidad = new java.util.Date();
    @Columna(nombre = "telefono", tipo = "String")
    private String telefono = "";

    public Beans() {
    }

    /**
     * Método constructor que asigna todos los valores del registro de un
     * usuario
     *
     * @param id Atributo que identifica la llave primaria (Autosecuencia)
     * @param imei Atributo de indentificacion del gps
     * @param numero_serie Atributo que identifica el numero de gps
     * @param marca Atributo que identifica la marca del gps
     * @param modelo Atributo que identifica el modelo del gps
     * @param nombre Atributo que identifica el nombre del gps
     * @param tipo Atributo que identifica el tipo de gps
     * @param detalle Atributo que identifica el detalle del gps
     * @param caducidad Atributo que identifica el tiempo del gps
     */
    public Beans(int id, String imei, String numero_serie, String marca, String modelo, String nombre, int tipo, String detalle, Date caducidad,String telefono) {
        this.id = id;
        this.imei = imei;
        this.numero_serie = numero_serie;
        this.marca = marca;
        this.modelo = modelo;
        this.nombre = nombre;
        this.tipo = tipo;
        this.detalle = detalle;
        this.caducidad = caducidad;
        this.telefono=telefono;
    }

    /**
     * Método que permite inicializar todas las variables
     */
    public void clearBeans() {
        setId(0);
        setImei("");
        setNumero_serie("");
        setMarca("");
        setModelo("");
        setNombre("");
        setTipo(0);
        setDetalle("");
        setCaducidad(new java.util.Date());
    }

    /**
     * Método que permite sustituir caracteres especiales que puedan afectar las
     * sentencias SQL. por ejemplo: ('), (/). Debe ser utilizado en el (set) de
     * los atributos tipo String.
     *
     * @param data cualquier dato tipo String
     * @return Devuelve el dato con la sustitución de caracteres especiales
     */
    private String strScape(String data) {
        data = data.trim();
        data = data.replace("'", "''");
        data = data.replace("\\", "\\\\");
        return data;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return this.id;
    }

    public String getImei() {
        return this.imei;
    }

    public void setImei(String imei) {
        this.imei = strScape(imei);
    }

    public String getNumero_serie() {
        return this.numero_serie;
    }

    public void setNumero_serie(String numero_serie) {
        this.numero_serie = strScape(numero_serie);
    }

    public String getMarca() {
        return this.marca;
    }

    public void setMarca(String marca) {
        this.marca = strScape(marca);
    }

    public String getModelo() {
        return this.modelo;
    }

    public void setModelo(String modelo) {
        this.modelo = strScape(modelo);
    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = strScape(nombre);
    }

    public void setTipo(Integer tipo) {
        this.tipo = tipo;
    }

    public Integer getTipo() {
        return this.tipo;
    }

    public String getDetalle() {
        return this.detalle;
    }

    public void setDetalle(String detalle) {
        this.detalle = strScape(detalle);
    }

    public void setCaducidad(Date caducidad) {
        this.caducidad = caducidad;
    }

    public Date getCaducidad() {
        return this.caducidad;
    }

    /**
     * @return the telefono
     */
    public String getTelefono() {
        return telefono;
    }

    /**
     * @param telefono the telefono to set
     */
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
}
